module WWW
  class Ali
    class Alisoft
      class  User
        attr_reader :user_id,:app_id,:app_instance_id,:token,:sip_sessionid,:sip_timestamp,:domain_id,:login_id,:user_id

        def initialize(request,session)
          @user_id = request[:user_id]
          @app_id  = request[:app_id]
          @app_instance_id=request[:app_instance_id]
          @token = request[:token]
          @sip_sessionid = session[:user_id]
          @sip_timestamp=Time.now.strftime("%Y-%m-%d %H:%M:%S")
          #根据域与登录Id获得平台统一ID
          @domain_id = request[:domain_id]
          @login_id  = request[:login_id]
          #根据域以及平台统一ID获得登录id
          @user_id  = request[:user_id]
        end
        #根据软件互联平台的用户ID，获取用户的阿里巴巴中文站（或淘宝）帐号
        def get_domain_login_id
          params = get_get_domain_login_id_params
          result = WWW::Ali::Util::Tool.get_result params
          return result['result'][0]
        end
        def get_get_domain_login_id_params
          ret_val = Hash.new
          ##系统级别参数
          ret_val['sip_appkey']=WWW::Ali.get_app_id
          ret_val['sip_apiname']="alisoft.udb.getDomainLoginId"
          ret_val['sip_timestamp']=@sip_timestamp
          ret_val['sip_format']='json'
          ##应用级别参数
          ret_val['domainid']=@domain_id
          ret_val['userid']=@user_id
          ##计算获得签名信息
          ret_val['sip_sign']=WWW::Ali::Util::Tool.get_sip_sign ret_val

          return ret_val
        end
        #根据阿里巴巴中文站（或淘宝）帐号，获取用户在软件互联平台的用户ID
        def get_user_id
          params = get_get_user_id_params
          return WWW::Ali::Util::Tool.get_result params
        end
        def get_get_user_id_params
          ret_val = Hash.new
          ##系统级别参数
          ret_val['sip_appkey']=WWW::Ali.get_app_id
          ret_val['sip_apiname']="alisoft.udb.getUserId"
          ret_val['sip_timestamp']=@sip_timestamp
          ret_val['sip_format']='json'
          ##应用级别参数
          ret_val['domainid']=@domain_id
          ret_val['loginid']=@login_id
          ##计算获得签名信息
          ret_val['sip_sign']=WWW::Ali::Util::Tool.get_sip_sign ret_val

          return ret_val
        end
        #此接口方法以实现验证某个用户是否某个订阅实例的有效用户
        def validate_app_user
          params = get_validate_app_user_params
          return WWW::Ali::Util::Tool.get_result params
        end
        ##组合包括签名信息在内的hash表
        def get_validate_app_user_params
          ret_val = Hash.new
          ##系统级别参数
          ret_val['sip_appkey']=WWW::Ali.get_app_id
          ret_val['sip_apiname']="alisoft.validateUser"
          ret_val['sip_timestamp']=@sip_timestamp
          ret_val['sip_format']='json'
          ##应用级别参数
          ret_val['userId']=@user_id
          ret_val['appInstanceId']=@app_instance_id
          ret_val['token']=@token
          ##计算获得签名信息
          ret_val['sip_sign']=WWW::Ali::Util::Tool.get_sip_sign ret_val

          return ret_val
        end
        #验证用户身份
        def validate_user
          params = get_validate_user_params()
          return WWW::Ali::Util::Tool.get_result params
        end
        ##组合包括签名信息在内的hash表
        def get_validate_user_params
          ret_val = Hash.new
          ##系统级别参数
          ret_val['sip_appkey']=WWW::Ali.get_app_id
          ret_val['sip_apiname']="alisoft.validateUser"
          ret_val['sip_timestamp']=@sip_timestamp
          ret_val['sip_format']='json'
          ##应用级别参数
          ret_val['userId']=@user_id
          ret_val['appInstanceId']=@app_instance_id
          ret_val['token']=@token
          ##计算获得签名信息
          ret_val['sip_sign']=WWW::Ali::Util::Tool.get_sip_sign ret_val

          return ret_val
        end
      end
    end
  end
end
